Skip to content

docs: remove retired legacy RPCs - #65

Merged
alexander-sei merged 2 commits into
mainfrom
docs/remove-retired-sei-rpcs
Aug 18, 2026
Merged

docs: remove retired legacy RPCs#65
alexander-sei merged 2 commits into
mainfrom
docs/remove-retired-sei-rpcs

Conversation

@alexander-sei

Copy link
Copy Markdown
Collaborator

Summary

  • remove the retired sei2_* namespace and obsolete sei_* methods from the RPC explorer, reference, and operator configuration
  • retain and document the four remaining deprecated sei_* methods
  • update association and synthetic-log migration guidance, including the sei_getCosmosTx response format

Test plan

  • npm_config_ignore_scripts=true npm exec --yes --package=mintlify@4.2.805 -- mintlify broken-links
  • IDE lint diagnostics
  • git diff --check

Dependency

Made with Cursor

Remove obsolete endpoints from the explorer and operator guidance so the docs match the reduced legacy surface and point users to supported replacements.

Co-authored-by: Cursor <cursoragent@cursor.com>

@seidroid seidroid Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The automated review did not complete; see the failing AI Review check for details.

@mintlify

mintlify Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
sei-docs 🟢 Ready View Preview Aug 17, 2026, 2:08 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 3b93eb7. Configure here.

Comment thread node/node-operators.mdx
# Optional legacy methods - uncomment to enable (same deprecation applies):
# "sei_associate",
# "sei_getBlockByHash",
# "sei_getBlockByHashExcludeTraceFail",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hand-edited auto-generated config

Medium Severity

The enabled_legacy_sei_apis cleanup edits comments and allowlist entries inside the AUTO-GENERATED:APP_TOML block. That block is replaced wholesale by scripts/sync-default-configs.mjs from seid init output, so hand-written changes are clobbered on the next sync and can drift from the real defaults. This violates the rule against hand-editing inside AUTO-GENERATED config blocks.

Fix in Cursor Fix in Web

Triggered by learned rule: Do not hand-edit inside AUTO-GENERATED config blocks

Reviewed by Cursor Bugbot for commit 3b93eb7. Configure here.

@seidroid seidroid Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs-only cleanup that removes the retired sei2_* namespace and obsolete sei_* methods; the removal is complete and internally consistent (no dangling references, explorer data matches the reference table, eth_getVMError correctly covers the dropped sei_getVMError). No blockers, but the rewrite drops version markers and per-method migration paths, hand-edits two verbatim server strings that need confirming against sei-chain #3927, and leaves some local inconsistencies in the seid CLI page.

Findings: 0 blocking | 16 non-blocking | 10 posted inline

Blockers

  • None at the file/PR level.

Non-blocking

  • Both second-opinion passes produced no output: codex-review.md and cursor-review.md are empty files. REVIEW_GUIDELINES.md is also empty, so no repo-specific standards could be applied to this review.
  • Merge ordering: every removal is stated in the present tense while sei-chain #3927 is still open. Publishing before that ships makes the app.toml sample in node/node-operators.mdx wrong for every node currently running, and tells integrators that methods they are actively calling are gone. The PR body already flags the dependency — keep the merge gated on it.
  • Consider replacing the deleted method inventory with a short old → new migration table instead of removing it outright. The deleted accordion in evm/reference.mdx was the only place many of these names appeared in the docs, so integrators searching for sei_getEvmTx, sei_getLogs, sei_getBlockByNumber, or sei_getTransactionErrorByHash now get no hit and no guidance.
  • evm/tracing/index.mdx: renaming the H2 changes its anchor from #excludetracefail-filtering-semantics to #removed-legacy-trace-filters. Nothing in the repo links to the old anchor, but external and deep links will break. The section is also now a single <Note> under its own H2 — folding it into an adjacent section would read better than leaving a heading whose only content is a tombstone.
  • The synthetic-log guidance sentence ("There is no block or filter method for discovering synthetic logs…") is duplicated near-verbatim in evm/reference.mdx:1354 and evm/tracing/index.mdx:448. A shared snippet would keep the two from drifting.
  • seid tx evm native-associate could not be verified from this environment (no network access to sei-chain sources). Please confirm the exact command name, the positional-arg arity, and whether the custom message is required before merging — it is the sole documented replacement for a command this PR deletes.
  • 10 suggestion(s)/nit(s) flagged inline on specific lines.

Comment thread evm/reference.mdx

<Warning>
**Deprecation Notice:** All `sei_*` and `sei2_*` JSON-RPC methods are deprecated and scheduled for removal. Do not build new integrations on these endpoints. Use standard `eth_*` and `debug_*` methods instead.
The `sei2_*` namespace has been removed. Most legacy `sei_*` methods have also been removed, including block, filter, log, signing, association, and transaction lookup methods. The `sei_*` cleanup is tracked in [sei-chain PR #3927](https://github.com/sei-protocol/sei-chain/pull/3927).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] This states the removal in the present tense with no release boundary. The docs previously used version markers for exactly this case ("removed in v6.6.0 (#3618)"), which this rewrite drops everywhere. Operators and integrators on current binaries still have sei2_* and the other methods, so as written this page is wrong for them. Suggest "removed in vX.Y.Z" once the sei-chain release is known, and link the release notes rather than an open PR — a PR link will read as "not shipped yet" to anyone who follows it, and as dead context after it merges.

Comment thread evm/reference.mdx
"error": {
"code": -32601,
"message": "sei_getBlockByNumber is not enabled on this node. The sei_* and sei2_* JSON-RPC surfaces are deprecated, scheduled for removal, and should not be used for new integrations - prefer standard eth_* (and debug_*) methods and official migration guidance. To allow this legacy method, add it to enabled_legacy_sei_apis under [evm] in app.toml.",
"message": "sei_getTransactionReceipt is not enabled on this node. The sei_* JSON-RPC surface is deprecated, scheduled for removal, and should not be used for new integrations - prefer standard eth_* (and debug_*) methods and official migration guidance. To allow this legacy method, add it to enabled_legacy_sei_apis under [evm] in app.toml.",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] This sample is presented as the node's verbatim error output, and the change rewrites it by hand (The sei_* and sei2_* JSON-RPC surfaces are deprecatedThe sei_* JSON-RPC surface is deprecated, plus swapping the method name). Same applies to the header value on line 1490 and the app.toml comment block in node/node-operators.mdx:435-445. If sei-chain #3927 does not make the identical wording change, all three drift from what the node actually emits — worth diffing them against the chain PR before merge, since readers may be string-matching on them.

Comment thread evm/reference.mdx
</Warning>

**Batch requests:** JSON-RPC batches (a top-level JSON array) are handled by the gate rather than passed through wholesale. Only the allowed methods in the batch are forwarded to the inner handler as a filtered subset, and the inner responses are then merged back by matching each response's JSON-RPC `id`. Disallowed methods yield the usual `-32601` legacy deprecation error in their slot, and any batch element that is not a JSON object returns a JSON-RPC `-32600` `"Invalid Request"` error in its slot — a malformed element no longer causes the whole batch body to bypass the gate and reach the inner handler.
<Note>There is no remaining block or filter method for discovering synthetic logs from Cosmos-originated transactions. If you already know a synthetic transaction hash, enable `sei_getTransactionReceipt` to retrieve its receipt and logs.</Note>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] This tells the reader to use sei_getTransactionReceipt "if you already know a synthetic transaction hash" but never says how to obtain one now that sei_getLogs, sei_getBlockByNumber, and the sei_* filter methods are gone. That leaves the advice unusable in practice. Please point at the actual discovery path (CometBFT tx search / block events / an indexer) or say plainly that synthetic-log discovery over JSON-RPC is no longer supported — either is more useful than an unreachable precondition.

Comment thread evm/reference.mdx
### Cross-VM transaction lookup

`sei_getCosmosTx` resolves the underlying Cosmos transaction hash for a given EVM transaction. It does not yet have a precompile equivalent and is enabled by default on Sei nodes.
`sei_getCosmosTx` resolves the underlying Cosmos transaction hash for a given EVM transaction. It returns the hash as uppercase hexadecimal without a `0x` prefix. The method does not yet have a precompile equivalent and is enabled by default on Sei nodes.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] This section now documents only the EVM → Cosmos direction. The inverse, sei_getEvmTx (Cosmos → EVM hash), is removed by this PR with no replacement mentioned anywhere in the docs, even though the section title still promises "cross-VM transaction lookup" generally. Add a sentence on what integrators should do for the reverse mapping, or note explicitly that it has no replacement.

Comment thread evm/reference.mdx
<Note>`sei_traceBlockByHashExcludeTraceFail` and `sei_traceBlockByNumberExcludeTraceFail` were removed in v6.6.0 (#3618) and no longer appear in the gated method list; adding them to `enabled_legacy_sei_apis` has no effect. Use `debug_traceBlockByHash`/`debug_traceBlockByNumber` instead.</Note>

**`sei2_*` methods** (block queries with bank transfers included):
Only these four methods are available:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] The authoritative method list now sits under ### Legacy API configuration, after the TOML block, which makes it hard to find from the section heading. Consider moving it up under ## Sei custom endpoints next to the "four legacy custom endpoints" sentence it supports. Separately, sei_getCosmosTx gets a full parameters/result/example subsection while sei_getTransactionReceipt — the one method that is off by default and therefore needs the most explanation — only appears as a table row.

Comment thread evm/reference.mdx
| `object` | The Cosmos transaction object. |
| Type | Description |
| :--- | :---------- |
| `string` | The Cosmos transaction hash as uppercase hexadecimal without a `0x` prefix. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] Since the documented result type changes here from object to a bare string, an Example Response block alongside the existing request example would make the new contract unambiguous — the uppercase-no-0x format is easy to get wrong when migrating.


```bash
seid tx evm associate-address [optional priv key hex] --from=<sender> --evm-rpc=<url>
seid tx evm native-associate [custom-message] --from=<sender>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] The Parameters: block was dropped here, but every other command in this file keeps one (see Send Native Tokens below). The bracket notation implies [custom-message] is optional, yet the example always passes "associate" and the prose does not say what happens if it is omitted or what the value is used for. Please restore a short parameters list stating whether it is optional and what a caller should put there.

**Parameters:**

- `[optional priv key hex]` - Optional private key in hex format. If not provided, uses the key from keyring.
The custom message identifies the association request. This command submits a native transaction, so use standard `seid` transaction flags such as `--node` and `--chain-id` instead of `--evm-rpc`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] This contradicts the Common Transaction Flags section above (line 30: "All transaction commands support these common flags", including --evm-rpc) and the <Info> at line 26. Worth qualifying that list — e.g. "all EVM-RPC transaction commands" — so the two statements do not conflict on the same page.

- `--nonce=<nonce>` - Nonce override for the transaction (-1 means auto-calculate)

## Address Management Commands
## Address management commands

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] These two headings are switched to sentence case while every other heading in the file stays Title Case (## Overview, ## Network Configuration, ## Common Transaction Flags, ## Token Transfer Commands at line 61, ### Send Native Tokens). Either leave them as-is or convert the whole file in a follow-up — a two-heading conversion just makes the page look inconsistent.

Comment thread learn/accounts.mdx
<Info>Each method ensures the **public key** is known to the chain, enabling automatic association between the EVM-compatible and Bech32 addresses. All four go through the on-chain `addr` precompile (`0x0000000000000000000000000000000000001004`) or the EVM ante handler and are available on every Sei EVM RPC.</Info>

<Note>A previous "gasless" association flow that used the `sei_associate` JSON-RPC method has been retired — the method is part of the deprecated `sei_*` namespace and is not in the default `enabled_legacy_sei_apis` allowlist, so it returns `legacy_sei_deprecated` on public RPCs. Method 3 covers the same wallet-signed-message UX without depending on a gated endpoint. Node operators who want to re-enable the legacy method on their own infrastructure can add `sei_associate` to `enabled_legacy_sei_apis` in `app.toml` — see [Node Operators](/node/node-operators) for the surrounding config.</Note>
<Note>The legacy `sei_associate` JSON-RPC method has been removed. Method 3 provides the same wallet-signed-message flow through the `addr` precompile.</Note>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] The replacement note drops the "gasless" characterization the old text carried. That was the operative property for this flow: sei_associate broadcast a no-gas AssociateTx, whereas the addr precompile path is a regular EVM transaction requiring a funded account — which is precisely the situation an unassociated user is often in. "Method 3 provides the same wallet-signed-message flow" is true for the signing UX but glosses over that funding requirement. Worth one clause spelling out the difference.

@alexander-sei
alexander-sei merged commit 712f7be into main Aug 18, 2026
22 of 28 checks passed
@alexander-sei
alexander-sei deleted the docs/remove-retired-sei-rpcs branch August 18, 2026 11:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant